//
//  graphicsMath.h
//  LAMapBasicDemo
//
//  Created by 罗亮富 on 2017/12/28.
//  Copyright © 2017年 2Bulu. All rights reserved.
//
//#warning use new

#ifndef graphicsMath_h
#define graphicsMath_h

#include <stdio.h>

#ifdef __OBJC__
#define IS_COCOA_PLAT 1
#endif

#if IS_COCOA_PLAT
#include <CoreGraphics/CoreGraphics.h>
#endif

#if (!IS_COCOA_PLAT)
typedef struct {
    double x;
    double y;
}CGPoint;
#endif

//生成bezier曲线控制点，使得*ctrP1、*ctrP2，p2三个控制点生成的bezier曲以p1、p2为端点
//p0:p1的前一个点 p1:bezier曲线起点 p2:bezier曲线终点, p3:p2的后一个点;smooth 取值0-1,0不平滑,1非常平滑;ctrP1,ctrP1生成的控制点
void CalculateBezierCurveControlPoints(float smooth_value, CGPoint p0, CGPoint p1, CGPoint p2, CGPoint p3, CGPoint *ctrP1, CGPoint *ctrP2);

#if IS_COCOA_PLAT
//p1:曲线起点  p2:曲线终点;smooth 取值0-1,0不平滑,1非常平滑 各点连接顺序 p0->p1->p2->p3,若p1是最前面的点，则前面的点取p1的值，同理若p3是最后的点,则后面的点取p3的值
extern inline void addSmoothBezierCurve(CGMutablePathRef path, float smooth, CGPoint p0, CGPoint p1, CGPoint p2, CGPoint p3);
#endif


#endif /* graphicsMath_h */
